package ar.com.spsolutions.splibrary.repositories;

import java.io.Serializable;
import java.util.List;

/**
 * Interface for generic DAO
 * 
 * @param <T>
 */
public interface GenericRepository<T> extends Serializable {

	void save(T entity);

	void delete(T entity);

	T update(T entity);

	T findById(Serializable id);

	List<T> findByLike(String property, String value);

	List<T> findAll();

	void deleteById(Serializable id);

	int count();

	List<T> findByExample(T exampleObject);

	T attachSession(final T entity);

	T get(T entity);

}